package codec

import (
	"bytes"
	"encoding/gob"
	"log"
)

func Encode(data interface{}) []byte {
	var buf bytes.Buffer

	enc := gob.NewEncoder(&buf)

	if err := enc.Encode(data); err != nil {
		log.Fatalln(err)
	}

	return buf.Bytes()
}

func Decode(bs []byte) (data interface{}) {
	buf := bytes.NewBuffer(bs)

	dec := gob.NewDecoder(buf)

	if err := dec.Decode(&data); err != nil {
		log.Fatalln(err)
	}

	return data
}
